package ru.bytedog.oiot.counter.bot.bean.oiot;

import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;

import java.time.LocalDate;
import java.util.*;

import static org.junit.jupiter.api.Assertions.*;

class OiotSuccessResponseTest {

    @Test
    void getBotMessage() {
        Locale.setDefault(Locale.ENGLISH);
        OiotSuccessResponse response = new OiotSuccessResponse();
        assertEquals(StringUtils.EMPTY, response.getBotMessage());

        response.setResult(Collections.emptyMap());
        assertEquals(StringUtils.EMPTY, response.getBotMessage());

        Map<String, OiotResultData> responseData = new HashMap<>();
        String id = UUID.randomUUID().toString();
        responseData.put(id, new OiotResultData());
        response.setResult(responseData);
        assertEquals("Показатели не найдены\n", response.getBotMessage());

        OiotResultData resultData = new OiotResultData();
        resultData.setCounterName1("горячая");
        resultData.setCounterName2("холодная");
        resultData.setMeasure1("м.куб");
        resultData.setMeasure2("м.куб");
        resultData.setTitle("Кухня");

        OiotCounterData counter = new OiotCounterData();
        counter.setDate(LocalDate.of(2021, 1, 10).atStartOfDay());
        counter.setCounter1("34,4");
        counter.setCounter2("38,5");
        resultData.setData(Collections.singletonList(counter));

        responseData.put(id, resultData);
        assertEquals("""
                Показатели на 10 января 00:00
                Кухня
                горячая: 34,4 м.куб
                холодная: 38,5 м.куб
                """, response.getBotMessage());

        resultData.setCounterName1(null);
        assertEquals("""
                Показатели на 10 января 00:00
                Кухня
                холодная: 38,5 м.куб
                """, response.getBotMessage());

        resultData.setCounterName2(null);
        assertEquals("""
                Показатели на 10 января 00:00
                Кухня
                """, response.getBotMessage());


    }
}